接下來會講 sql 語法,但我自己語法也還很不熟,邊念邊分享,而且也是用工作摸到的以及自己理解的方式來敘述,這區塊請斟酌閱讀 :Q
然後接下來敘述是以好上手為 first policy 去撰寫,可能也不一定夠完整
今天用到的 table
CREATE TABLE sales (
id SERIAL PRIMARY KEY,
salesperson VARCHAR(255),
region VARCHAR(255),
amount NUMERIC
);
INSERT INTO sales (salesperson, region, amount) VALUES
('Alice', 'North', 500),
('Bob', 'North', 600),
('Alice', 'South', 700),
('Charlie', 'East', 400),
('Alice', 'North', 200),
('Bob', 'South', 300);
SELECT _欄位
FROM _表格
WHERE 1 = 1
AND 條件1
AND 條件2
AND 條件3
ORDER BY 欄位
在最普通的 case 裡面,單表操作,我們會希望給一些條件去把我想要撈的欄位(column), 資料(row) 撈出來。
所以上面的語法重點在:
where 1 = 1 就是一個小 trick,可以讓後續的條件用 AND 結構化的接在一起。
例子
SELECT
id,
salesperson,
region,
amount
FROM
sales
WHERE
1 = 1
AND amount > 300 -- 條件1:銷售額必須大於 300
AND (region = 'North' OR region = 'South') -- 條件2:區域必須是 North 或 South
AND salesperson != 'Charlie' -- 條件3:排除 Charlie 的銷售記錄
ORDER BY
amount DESC; -- 條件4:按照銷售額降序排列
所以以上的例子,關注的點就在我需要哪些「欄位」,然後是限制什麼條件:「列」,然後加以排序一下,最基本最基本的需求就滿足啦!
每篇的內容不要太多,下一篇講一下 聚合函數、groupy、having 關鍵字xD